package toolsUseCourse.JSON.jsonfileio;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import static utils.date.DateTimeUtils.calculateCurrentDate;

public class ComplexFirstExampleParseJSONFile {
    //    在其他电脑上运行的时候，获取文件路径方法：选中json文件-》Ctrl+shift+c（复制json文件路径）-》替换掉对应的变量
    /**
     * 比如获取ORIGIN_PATH
     * 选中wechat_interface.postman_collection.json文件-》Ctrl+Shift+C（复制到json文件的路径）-》替换掉ORIGIN_PATH
     */
//    notes：不同电脑，项目路径不同，文件路径也会跟着变，不改路径，会报错，failed to open file
    public static String ORIGIN_PATH = "D:\\personal\\project\\springboot-demo\\framework_usage_case\\JSON\\wechat_interface.postman_collection.json";
    //    public static String DESTINATION_PATH = "D:\\work\\xikuan\\biz\\comprehensiveModule\\src\\prase_json_file\\destination.postman_collection.json";
    public static String DESTINATION_PATH = "D:\\personal\\project\\springboot-demo\\framework_usage_case\\JSON\\destination.postman_collection.json";



/*
输入两个参数，年份和月份
返回
从2018到当前年份，可以单选可以多选，全选就是空字符串
一年12个月，可以单选可以多选，全选就是空字符串
(多个年份，月份用英文逗号隔开，比如：年份2018,2019月份1,2,3)
遍历所有情况，存入hashmap，并随之输出当前情况的月份长度
把年份月份两个参数，和其对应的月份长度（比如：2018年，1月，月份长度：1，2018年，1,2月，月份长度：2）
* */


    /*
    input: String year = "2018",month = "1",length = "0";
    output: year,month,length
    * */

    public static HashMap<Integer,ArrayList> calculateYearMonthLength(String startYear,String startMonth) {
        //最后输出的结果
        HashMap<Integer,ArrayList> result = new HashMap<>(); // Integer存下标，ArrayList存year,month,length
        Integer resultSize = 0;

        final int MAX_MONTH = 12;
        String CURRENT_YEAR = calculateCurrentDate().get("YEAR").toString(),CURRENT_MONTH = calculateCurrentDate().get("MONTH").toString();

//        得到yearList
        ArrayList<String> yearList = new ArrayList<>();
        yearList.add("");
        yearList.add(startYear);
        for (int i = 1; i < Integer.parseInt(CURRENT_YEAR) - Integer.parseInt(startYear) + 1; i++) {
            // 从1开始，是因为0，存的是空字符串
            yearList.add(String.valueOf(Integer.parseInt(yearList.get(i)) + 1));
        }



        ArrayList<String> monthList = new ArrayList<>();
        monthList.add("");
        monthList.add(startMonth);
        monthList.add(CURRENT_MONTH);


        monthList.get(1);

//        遍历yearList，求出yearList的所有组合（除了第一个空字符串）


//        switch(test){
//            case test:
//                break;
//            default:
//                break;
//        }

        return result;

    }

    public static void main(String[] args) throws IOException {
        calculateYearMonthLength("2018","1");


    }

    public static void jsonFileIO(String[] args) {
        //      实例化对象，调用ReadJSONFile，把jsonFile转换为JSONObject
        FirstExampleParseJSONFile firstExampleParseJSONFile = new FirstExampleParseJSONFile();
/*        String JsonContext = firstExampleParseJSONFile.ReadJSONFile(ORIGIN_PATH);
        JSONObject originJsonObject = JSONArray.parseObject(JsonContext);*/
        JSONObject originJsonObject = JSONArray.parseObject(firstExampleParseJSONFile.ReadJSONFile(ORIGIN_PATH)); // 等价于上面的两行代码

//      destinationJsonObject，最终要转换成的JSONObject
        JSONObject destinationJsonObject = new JSONObject();
//      info是不会改变的部分，直接put进去
        destinationJsonObject.put("info",originJsonObject.get("info"));
//      item的0不会变
        JSONArray item = originJsonObject.getJSONArray("item");
        JSONObject itemJsonObject = item.getJSONObject(0);
        destinationJsonObject.put("item",item);
    }

}
